home *** CD-ROM | disk | FTP | other *** search
/ Amiga Plus 1996 #1 / Amiga Plus CD - 1996 - No. 1.iso / pd / disktools / diskspeed_v4.4 / diskspeed.doc < prev    next >
Text File  |  1994-05-17  |  26KB  |  494 lines

  1.  
  2.                           DiskSpeed v4.4
  3.                           ScsiSpeed v4.4
  4.                                 by
  5.                            Michael Sinz
  6.  
  7.                     For Kickstart 2.0 or Higher!
  8.  
  9.            Copyright (c) 1989-1994 by MKSoft Development
  10.  
  11.                        MKSoft Development
  12.                        163 Appledore Drive
  13.                        Downingtown, PA 19335
  14.  
  15.  Yes, this is yet another disk speed testing program, but with a few
  16.  differences.  It was designed to give the most accurate results of the
  17.  true disk performance in the system.  For this reason many of
  18.  DiskSpeed's results may look either lower or higher than current disk
  19.  performance tests.
  20.  
  21. ******************************************************************************
  22. *                                                                            *
  23. *      Reading legal mush can turn your brain into guacamole!                *
  24. *                                                                            *
  25. *              So here is some of that legal mush:                           *
  26. *                                                                            *
  27. * Permission is hereby granted to distribute this program's source           *
  28. * executable, and documentation for non-commercial purposes, so long as the  *
  29. * copyright notices are not removed from the sources, executable or          *
  30. * documentation.  This program may not be distributed for a profit without   *
  31. * the express written consent of the author Michael Sinz.                    *
  32. *                                                                            *
  33. * This program is not in the public domain.                                  *
  34. *                                                                            *
  35. * Fred Fish is expressly granted permission to distribute this program's     *
  36. * source and executable as part of the "Fred Fish freely redistributable     *
  37. * Amiga software library."                                                   *
  38. *                                                                            *
  39. * Permission is expressly granted for this program and it's source to be     *
  40. * distributed as part of the Amicus Amiga software disks, and the            *
  41. * First Amiga User Group's Hot Mix disks.                                    *
  42. *                                                                            *
  43. ******************************************************************************
  44.  
  45. DiskSpeed 4.4 is a minor update release that also adds ScsiSpeed to the
  46. distribution.  ScsiSpeed is much like DiskSpeed except it does raw device
  47. reading of the device in question.  See end of this file for more details.
  48.  
  49. ------------------------------------------------------------------------------
  50.  
  51. DiskSpeed 4.2 brings a whole new set of disk drive performance testing
  52. technologies to the game.  These tests, along with smart usage of the
  53. results will give you a very good indication of the performance of
  54. a disk subsystem in the Amiga enviorment.
  55.  
  56. DiskSpeed 4.2 is now fully configurable and can run from an Icon or
  57. from the CLI.  From the CLI, you have a choice as to if you want the
  58. graphical user interface to the program.
  59.  
  60. From Workbench, you can start DiskSpeed 4.1 from its tool icon with
  61. the settings within the tooltype of that icon.  You can also start
  62. DiskSpeed from a project icon and it will use the setting from that
  63. icon's tool types.  (Example project icon included)
  64.  
  65. Two of the options in DiskSpeed 3.1 have been removed for DiskSpeed 4.
  66. CPU Stress testing started out as a good test but ended up becoming
  67. meaningless as the drive manufactures modified the task priorities of
  68. their drives.  However, DiskSpeed 4 went to a much better method:  The
  69. CPU availability index.  This is calculated via a simple task that runs
  70. at a very low priority.  DiskSpeed takes a reading of the system's
  71. performance while idle and uses that reading to determin how much of
  72. the system's CPU is in use during each of the tests.  In addition to
  73. providing better results, it also keeps the CPU in a busy state
  74. and thus could cause a difference in drive performance.
  75.  
  76. The other feature, DMA stress, has been removed and no direct replacement
  77. is available yet.  The reason there is little that can be done is because
  78. under Release 2 of the operating system the Workbench screen is no longer
  79. a fixed resolution and mode.  This means that using DiskSpeed in different
  80. workbench screen modes will cause a difference in results.  However, it
  81. also means that it will let the user see the performance of the system
  82. with the display mode he uses.  (Most likely)  I am currently investigating
  83. how to implement a safe and reliable DMA stress for a future DiskSpeed.
  84. If something can be found that works in 1.3 I may release a DiskSpeed 4.4
  85. that contains this.  Currently there has been no good way found yet.
  86. (When testing under 2.0 you can switch to the display mode you wish to test
  87. in and try that result.  A 16-colour high-resolution overscanned display
  88. will work out as a good test of custom chip DMA vs the hard drive)
  89.  
  90. DiskSpeed 4.x will be the last 1.2/1.3 compatible version of DiskSpeed.
  91. As of this point in time, no new DiskSpeed is planned, but if another
  92. version is made, it will require AmigaOS Release 2 as a minimum
  93. operating system version.
  94.  
  95. The DiskSpeed command line options look much like the standard ReadArgs()
  96. options of Release 2.  They are, however, not the ReadArgs() since that
  97. feature is only available as of Release 2.
  98.  
  99.  
  100. These key words are also available from the TOOLTYPES of the icon.
  101.  
  102. * DRIVE/K    - select drive  (Default is current directory)
  103.     You can use either 'DRIVE <path>'  or  'DRIVE=<path>'
  104.  
  105. * COMMENT/K    - set comment string
  106.     You can use either 'COMMENT <comment>'  or  'COMMENT=<comment>'
  107.  
  108. * ALL/S        - select all tests
  109.     This turns on all of the tests below
  110.  
  111. * DIR/S        - setect DIR tests
  112. * SEEK/S    - select SEEK tests
  113.  
  114. * CHIP/S    - select CHIP memory buffer tests
  115. * FAST/S    - select FAST memory buffer tests
  116.     You can select both and DiskSpeed will then do a test pass
  117.     with each type of memory.
  118.  
  119. * LONG/S    - select LONG aligned tests
  120. * WORD/S    - select WORD aligned tests
  121. * BYTE/S    - select BYTE aligned tests
  122.     You can select any combinations of the above.  DiskSpeed
  123.     will do a test pass with each one.  These combine with
  124.     the memory type above to create up to 6 test passes.
  125.  
  126. * BUF1/K/N    - select buffer size 1    (Default = 512)
  127. * BUF2/K/N    - select buffer size 2    (Default = 4096)
  128. * BUF3/K/N    - select buffer size 3    (Default = 32768)
  129. * BUF4/K/N    - select buffer size 4    (Default = 262144)
  130.     Will let you select the buffer sizes for the tests.
  131.     To eliminate a buffer test, set the buffer to 0.
  132.     You can use either 'BUF1 <num>'  or  'BUF1=<num>'
  133.  
  134. * WINDOW/S    - use the GUI even though started from the CLI
  135.  
  136. * MINTIME/K/N    - Selects the number of seconds to run each test. (1 to 500)
  137.   New keyword that lets you select the minimum amount of time any test takes.
  138.   This applies to all tests except for the Directory entry create and delete
  139.   tests.  Also, note that after the file create speed test, a full 256K file
  140.   is created and this can, on slow systems take some time.
  141.  
  142. * NOCPU/S    - Turns off the CPU available task.
  143.   New keyword that lets you turn off CPU percentage collection.  This is so
  144.   that the secondary task is not created.  Seems that just having this task
  145.   around can be enough to throw the performance of the system way off.  The
  146.   difference in time it takes to task-switch from STOP to the harddisk driver
  147.   and from a background task and the harddisk driver is sometimes just enough
  148.   to cause a rotation on the disk to be missed.  This feature may well be
  149.   removed, but the difference in the numbers is rather interesting.  (The
  150.   background task is at -127 priority...)
  151.  
  152.  
  153.  
  154. Below is a small part of an article I wrote for AmigaWorld Tech Journal
  155. Volume 1, Issue 5.
  156.  
  157. To get the full article and diagrams, you can contact AmigaWorld
  158. at 1-800-343-0728.  Other back issues are also available.
  159.  
  160.     Michael Sinz
  161.     MKSoft Development
  162.  
  163. ---------------------------------------------------------------------------
  164.  
  165. In search of speed...
  166.  
  167. As the industry moves to even faster drives and even larger data
  168. requirements, high speed drives and drive support will become a
  169. required feature of computers.  Multimedia is one of the application
  170. areas where high performance, large storage devices are required.
  171.  
  172. The Amiga did not have good hard drive support until the "Fast Filing
  173. System" came out.  However, now that it is here, the performance has
  174. proven that the Amiga is not just a graphics box.  The performance of
  175. the Fast Filing System and the hardware of the Amiga's hard drive
  176. controllers have pushed the limits of data transfer speeds.  With a
  177. good controller, many times the performance is limited by the speed of
  178. the data coming from the drive itself.
  179.  
  180.  
  181. Disk Drives:  How fast are they really
  182.  
  183. 500 K-bytes/second.  34 files/second.  This drive.  That controller.
  184. DMA. Non-DMA.  Multitasking friendly.  Video speed.  Millisecond access
  185. times. SCSI.  ST-506.  AT.  IDE.  Adaptec.  OMTI.
  186.  
  187. The amount of confusing, conflicting, and just plain wrong information
  188. about hard drives is rather extreme.  Maybe the reason for this is
  189. because the Amiga used to have slow hard drives.  Maybe it is because
  190. the Amiga now has some of the fastest hard drives in the industry.
  191. Some of it is also due to a misunderstanding of what the various terms
  192. and numbers mean.  So, what do these numbers mean?  How do they relate
  193. to how fast the system really is? And why are they what they are?
  194.  
  195. First, what does a disk drive, or more specifically, a hard disk drive
  196. really do?  Yes, we know it stores data, but there must be more
  197. involved in the process.  So, let us first look at some of the basic
  198. technical issues.
  199.  
  200. Data within a computer is just a series of 1s and 0s. (I know, we all
  201. know that already)  To store this data, the computer must, in some way,
  202. be able to take the 1s and 0s and record them such that they can be
  203. read back as the same pattern of 1s and 0s that were written.  One of
  204. the most popular methods of doing this is magnetic recording.  In much
  205. the same way as audio tape records sounds and plays it back, the
  206. computer generates a signal, or sound, that is recorded and when played
  207. back can be decoded and understood by the computer.  Computers did this
  208. on magnetic tape, magnetic drums, magnetic plated media, spinning
  209. magnetic tape (what became the floppy), and sealed magnetic plated
  210. media.  Through the history of computers, this has been one of the most
  211. complex and fastest advancing fields.  It was not much more than 10
  212. years ago when sealed media hard disk drives (known as Winchesters)
  213. were getting a whopping 5 to 10 million bytes on 8-inch drives. Today,
  214. on small 3.5-inch drives, over 1,000 million bytes are being stored.
  215.  
  216.  
  217. Measuring performance
  218.  
  219. Measuring the performance of a disk subsystem is a rather interesting
  220. science.  In addition to the physical limitations of the drive and
  221. controller, there are issues of software technology at the drive
  222. controller level, the filesystem level, and the operating system level.
  223. In addition, many of the standard testing issues come into play, such
  224. as accuracy of the test, accuracy of the observation, applicability of
  225. the test, etc.
  226.  
  227. The accuracy of the test can be defined rather exactly.  On the Amiga,
  228. the system has a timer that has a 1/60 second (1/50 in PAL) resolution.
  229. This comes out to roughly 0.02 seconds.  Thus, any given time reading
  230. will be only accurate to within +/- 0.02 seconds.  In order to test the
  231. speed of the tests, the time must be read at the beginning and at the
  232. end of the test. This results in +/- 0.04 seconds of accuracy.  Thus,
  233. in order to make the test have a +/- 1% accuracy, it would have to run
  234. for a minimum of 4 seconds.
  235.  
  236. The accuracy of the observation is much more difficult to quantify. The
  237. issue here is that in doing the observation, the test, and thus the
  238. results, are affected.  The best that can be done is to try to minimize
  239. the effect of observing the test while not compromising the quality of
  240. the observations.
  241.  
  242. The last issue:  the applicability of the test.  What this really means
  243. is how well the test (and the results of the test) relates to the
  244. real-use performance of the drive.  This is in many ways more important
  245. that the other two issues as without reasonable applicability, the test
  246. results would be useless.
  247.  
  248. With DiskSpeed, the disk performance test software that MKSoft
  249. Development has been developing, attention has been paid to make the
  250. tests both accurate and realistic.  DiskSpeed 3.1 has proven itself as
  251. being accurate and has become the standard by which Amiga hard disks
  252. and controllers are judged. With DiskSpeed 4.1 a whole new set of tests
  253. will be possible.
  254.  
  255.  
  256. DiskSpeed - The standard in the Amiga world
  257.  
  258. I had first developed DiskSpeed due to the fact that other disk drive
  259. performance testers were either highly inaccurate or did not relate
  260. well to real-world disk drive usage.  The accuracy issues are easy to
  261. solve, however the applicability issues took some thinking.
  262.  
  263. The accuracy issues were solved, in DiskSpeed 3.1, by making the tests
  264. take a long time.  This made sure that the clock's accuracy did not
  265. adversely affect the results of the test.  In addition, the tests were
  266. done with as clean of a software design as possible.
  267.  
  268. With DiskSpeed 4.1, I have developed a new technology that can
  269. automatically size the test time to give as accurate a result as
  270. possible.  It was important that this was only done in the appropriate
  271. tests as some tests radically change their results if they are run for
  272. more iterations.
  273.  
  274. The more important, and more difficult, part of designing a set of
  275. tests is to come up with ones that will show results that apply to the
  276. real world. In that direction, none of the tests use anything other
  277. than standard AmigaDOS file I/O calls.  Some people ask me to add a
  278. test that does direct device I/O.  However, no application would do
  279. direct device I/O to open/read/write/close/delete a file.  It would not
  280. only be ridiculous, but the amount of work required to write a
  281. filesystem is well beyond what an application developer needs to spend
  282. their time on.
  283.  
  284. Now that the tests are to only do AmigaDOS I/O, what needs to be
  285. tested?  This is where some knowledge of the physical limitations of
  286. the disk drives and how application software works is needed.
  287.  
  288. As many of you already know, the Amiga's filing system is very powerful
  289. and flexible.  Much of this power is from the way data is laid out on
  290. the disk.  However, as I am sure you also know, this layout makes some
  291. things a bit slower.  The most noticeable is that of listing a
  292. directory.  Since this is something that causes the system to read many
  293. blocks of data, many from different areas on the disk, and since many
  294. (most) applications and all users run into this performance issue
  295. during every-day use, a test that would measure the performance of the
  296. drive/controller combination when scanning a directory would provide
  297. numbers that directly relate to user experience.
  298.  
  299. In addition to scanning directories, it is important to be able to
  300. create new directory entries, find directory entries, and delete them.
  301. Again, these are situations that users run into every time they use an
  302. application that does anything with a disk.  All together, these tests
  303. are designed to show the performance of the filesystem's directory
  304. structure.  Note that in order to make these tests fair, the number of
  305. files created in the test directory is always the same.  The speed of
  306. access in a directory structure changes as the number of files change
  307. and if this test were to auto-size itself based on the speed of the
  308. device, the results would no longer be valid.
  309.  
  310. Another test that help show the performance of the filesystem and
  311. device driver is the Seek/Read test.  This test helps show how well a
  312. database application may run as database operations tend to be very
  313. disk bound and tend to access various locations with a large file. The
  314. Seek/Read test reads small chunks from the file at various locations
  315. within the file.  The speed with which the filesystem can find the
  316. correct data location within the file and then read a part of it is
  317. directly tested by this test.  (Note that the DiskSpeed 3.1 Seek/Read
  318. test was rather simplistic and produced uninteresting numbers.)
  319.  
  320. The final tests, are the basic file data read and write tests.  There
  321. are three of these:
  322.  
  323. File Write/Create:  this is where a new file is created and the data is
  324. filled in.  The speed of this is dependant on how fast the filing
  325. system can locate new empty blocks of disk space for the file.
  326.  
  327. File Write:  this is where an old file is written to.  The performance
  328. here is determined by how well the filing system deals with rewriting
  329. the data in a file that already exists.  This will usually be faster
  330. than the Write/Create test.
  331.  
  332. File Read:  this is where an old file is read from.  The performance
  333. here is determined by how quickly the filing system finds the data
  334. blocks of a file.
  335.  
  336. With DiskSpeed 3.1, each of these three tests were done with various
  337. buffer sizes ranging from 512-bytes to 262144-bytes.  DiskSpeed 4.1
  338. adds a few twists to this in that each test will also happen on
  339. LONGWORD aligned buffers, WORD aligned buffers, and BYTE aligned
  340. buffers.  Each test is then done in FAST memory and in CHIP memory (if
  341. you have them available.)  Also new for DiskSpeed 4.1 is the feature
  342. with which you can select the sizes of the tests.
  343.  
  344. While the larger size buffers are nice to play with, it is important to
  345. remember that most older applications only use a 512-byte buffer. Many
  346. of the newer applications are using 4096-byte buffers as the speed
  347. improvement by just increasing the amount of data read in one I/O call
  348. is rather significant.  DiskSpeed 3.1 helped show this fact.
  349.  
  350. In addition to the basic tests, DiskSpeed 3.1 let you turn on DMA and
  351. CPU stress factors.  The DMA feature would increase the amount of
  352. bandwidth the video control chips were using.  This was in order to
  353. show how well the drive/controller combination would work in a video
  354. environment.  The CPU stress was an attempt to simulate heavy work
  355. loads in the multi-tasking environment the Amiga provides.
  356.  
  357. With DiskSpeed 4.1, the CPU stress test has been removed.  It turned
  358. out to produce results that did not mean much.  However, to take its
  359. place is a CPU availability value that is reported for each test. This
  360. is a rough calculation of the available CPU percentage during the test.
  361. This is a very useful number as it will tell you if there is enough CPU
  362. time available to decompress a picture while loading the next one or to
  363. handle user input during disk I/O.
  364.  
  365. Observing a test always has an impact on the results.  This is a known
  366. fact.  DiskSpeed is no able to get around this fact.  In doing the CPU
  367. availability checking, the performance of the system may change.  This
  368. is due to the fact that just the act of counting the CPU time will
  369. cause some CPU time to be used and will change the dynamics of the
  370. system.  However, if all tests are done the same way, the relative
  371. merits of the drives under test will still be valid.
  372.  
  373.  
  374. Why is ... ?
  375.  
  376. So, now that we have some results, why are they like they are?
  377.  
  378. Why are small transfers so much slower?
  379. There are a number of reasons.  One of the major ones is the layout of
  380. data on the disk.  The sectors may be lade out on the disk in a number
  381. of ways. When a large transfer happens, it asks for the disk drive to
  382. send the data for a number of blocks.  If these were blocks 1 to 8, the
  383. drive could read all of these blocks in one revolution of the disk.
  384. (given a 1:1 interleave) However, if a program asks for only one block
  385. worth of data at a time, the time between the blocks could be too much
  386. and the next block will have passed by the head of the disk. Then the
  387. disk will have to rotate around until the right block was available
  388. again.  In the example, that would mean that a read of 8 blocks done 1
  389. at a time would take 7 full revolutions once the first block was
  390. transferred.  This makes for a total of 7 times slower than the
  391. transfer that asked for 8 blocks at once.  This is worst case. Many
  392. drives today have some caching and read-ahead that will help minimize
  393. this.
  394.  
  395. Why are the results inconsistent from one test to another?
  396. Disk performance testing is a rather complex task.  Without special
  397. equipment, many things can not be done.  When DiskSpeed does its tests,
  398. it does not know the exact location of the disk relative to the drive
  399. heads. This means that there will be some difference in timing between
  400. the time the drive is asked to read (or write) a block and the time
  401. that block is under the read/write head.  This time is known as
  402. rotational latency.  The faster the drive spins, the lower this time is.
  403.  
  404. Why does the CPU test make the drive speed so much slower?
  405. Depending on the method used to implement the controller software, the
  406. CPU test task, which runs at -127 priority, becomes extra overhead.
  407. The difference in speed may be rather small from the CPU standpoint,
  408. but it may be just enough in order to fall pray to the rotational
  409. latency problem.  The overhead difference is that when no task is
  410. running, waking up a task is just starting that task again. If,
  411. however, another task is running at the same time, the old task must
  412. first be put to sleep and this work can be just enough time to make the
  413. system miss the next block that is coming around and would then need to
  414. wait until it comes around again.
  415.  
  416. Why does drive performance change as the drive gets older?
  417. Drive performance does not really change due to the age of the disk.
  418. However, as files are written to the disk and then later removed, the
  419. empty areas of the disk become scattered.  When the disk is then
  420. tested, the system will have to seek to each of the locations where
  421. part of the data is stored.  This adds seek time, rotational latency,
  422. control overhead, and processor overhead as this information is handled.
  423.  
  424. Why are write speeds sometimes faster than read?
  425. Well, the way the drive works can have a major impact on this.  If the
  426. drive has a cache, a write could be sent to the cache while the drive
  427. is still waiting for the read/write head to get the position it wanted.
  428. Thus, the disk can say that the write is completed while it is not
  429. quite done.  During the time the system is getting ready for the next
  430. write, the drive will hopefully have sent the last write to the disk.
  431.  
  432. What number is most important?
  433. This is a hard question.  It would depend on your application and how
  434. you use your machine.  If you many times do directory listings or
  435. create files, it would be best to look at the directory manipulation
  436. tests; these include Files-per-second create/open/scan/delete.  One of
  437. the numbers that is most important to me is the small buffer
  438. performance.  That is, the performance of the drive/controller on
  439. buffered reads between the sizes of 512 bytes to 4096 bytes)  These two
  440. buffer sizes are much more representative of the size of the read/write
  441. buffers of most applications.  While the large buffer sizes are
  442. important to graphics and animation persons where high speed
  443. performance to large files is a major factor.  However, this is only
  444. useful if the file can be read as one big chunk.
  445.  
  446. Why does the test sometimes show more that 100% available CPU?
  447. Due to the fact that the CPU availability had to be measured to get a
  448. reading of how much total CPU there was, the measurement could have
  449. been a small amount incorrect.  The measurement code tries its best to
  450. get an accurate measurement but this is not always possible.  It will
  451. notice (most of the time) when accurate measurements are not possible
  452. and turn off the CPU testing since it would be meaningless.
  453.  
  454.  
  455. With the addition of the CPU availability numbers, a much more complete
  456. picture of drive and system performance can be obtained.  As multimedia
  457. becomes more important, the performance combination of high drive speed
  458. along with large amounts of available CPU power will be what makes it
  459. all possible.
  460.  
  461. With DiskSpeed 4.1, it will be possible for developers to make sure
  462. that the design of their hardware/software lives up to the performance
  463. needs of their users.  It will also give the data that proves the
  464. performance of the system for real work.  Applications such as database
  465. servers, file servers, and multimedia require as much performance as
  466. possible in the drive subsystem. The Amiga has the performance to
  467. outshine most other platforms in this area.
  468.  
  469. ******************************************************************************
  470. ******************************************************************************
  471. ******************************************************************************
  472.                 ScsiSpeed 4.4
  473.  
  474. ScsiSpeed was written due to the demand for more details on the raw
  475. performance of the drives connected to the system.  What ScsiSpeed does is
  476. use low-level device I/O to read the disk starting at block 0 and working up.
  477. ScsiSpeed, with a reasonable test time such as 20 seconds, will show the
  478. true sustained performance of the drive/interface combination without the
  479. overhead of the filesystem and AmigaDOS.
  480.  
  481. Basically, the usage of ScsiSpeed is the same as DiskSpeed except for options
  482. which do not apply.  (Such as DIR and SEEK tests, etc)
  483.  
  484. Also, the device/drive specification is different.  You must give the device
  485. name (such as scsi.device or trackdisk.device) and the unit number as follows:
  486.  
  487. scsi.device:6        <- This would be unit 6 of scsi.device (default)
  488. trackdisk.device:0    <- This would be DF0:
  489.  
  490. Note that due to some controller limitations, only long-aligned read tests
  491. are done.  Also, ScsiSpeed does not write to the disk and thus will not
  492. destroy any data on the disk.  This also means that it can test devices
  493. such as CD-ROM and WORM disks.
  494.